---
title: DifySandbox
---

### はじめに

`DifySandbox（ディファイサンドボックス）`は、PythonやNode.jsなど複数のプログラミング言語に対応した、軽量・高速・安全なコード実行環境です。Dify Workflowの様々な要素（コードノード、テンプレート変換ノード、LLMノードのJinja2構文、ツールノードのコードインタプリターなど）の基盤となる実行環境として機能します。DifySandboxは、ユーザーが提供したコードを実行しつつ、システム全体のセキュリティを確保します。

### 特徴
- **複数言語対応**：DifySandboxはSeccompというシステムレベルのソリューションをベースに構築され、複数のプログラミング言語をサポートしています。現在はPythonとNode.jsに対応しています。
- **システムセキュリティ**：予期せぬセキュリティ侵害を防ぐため、特定のシステムコールのみを許可する許可リストポリシーを採用しています。
- **ファイルシステムの隔離**：ユーザーのコードは独立した隔離されたファイルシステム環境で実行されます。
- **ネットワーク隔離**：
    - **DockerCompose環境**：専用のSandboxネットワークとプロキシコンテナを使用してネットワークアクセスを提供します。これにより、内部ネットワークのセキュリティを保ちつつ、柔軟なプロキシ設定が可能になります。
    - **Kubernetes環境**：Egressポリシーを用いて直接ネットワーク隔離戦略を設定できます。

### インストール依存関係

DifySandboxプロジェクトをインストールおよび展開する前に、以下の依存関係要件を満たしていることを確認してください：

1. **システム依存関係**

Linuxディストリビューションに応じて、以下のコマンドを実行して必要なシステムコンポーネントをインストールします：

- Ubuntu/Debian

```bash
sudo apt-get update
sudo apt-get install pkg-config gcc libseccomp-dev git wget
```

- CentOS

```bash
sudo yum install pkgconfig gcc libseccomp-devel git wget
```

2. **Go言語環境**

Go開発環境をインストールします（Go 1.20.6以上を推奨）：

```bash
# Go 1.20.6をインストール
sudo apt-get install -y golang-1.20.6
```

インストールを確認します：

```bash
go version  # インストールされたGoバージョンを表示
```

3. **Python環境設定**

**サンドボックス環境の準備**

Python 3.10以上を推奨します。

**事前インストール済み依存関係管理**

DifySandboxには以下のPython依存関係があらかじめ設定されています：

- `http` - 基本的なネットワークライブラリ
- `jinja2` - LLMプロンプト処理用のテンプレートエンジン
- `requests` - HTTPクライアントライブラリ

**カスタム依存関係の追加**

追加のPython依存関係が必要な場合は、以下の手順に従ってください：

1. プロジェクトのルートディレクトリにある`dependencies/python-requirements.txt`ファイルを見つけます。
2. 必要なパッケージ名とバージョンをファイルに追加します。権限変更が必要な場合は、[FAQ](https://github.com/langgenius/dify-sandbox/blob/main/FAQ)を参照してください。
3. DifySandboxを再構築します。

<Warning>
    新しい依存関係を追加すると、追加の権限要件が発生する可能性があります。セキュリティへの影響を慎重に評価してください。潜在的なセキュリティリスクを完全に制御できない場合は、権限設定を変更しないことをお勧めします。
</Warning>

### 貢献

`DifySandbox`の開発に参加する方法については、[貢献ガイド](contribution)をご参照ください。

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

<CardGroup cols="2">
    <Card
        title="このページを編集する"
        icon="pen-to-square"
        href="https://github.com/langgenius/dify-docs-mintlify/edit/main/ja-jp/development/backend/sandbox/README.mdx"
    >
        直接貢献することでドキュメントの改善にご協力ください
    </Card>
    <Card
        title="問題を報告する"
        icon="github"
        href="https://github.com/langgenius/dify-docs-mintlify/issues/new?title=ドキュメントの問題%3A%20&body=%23%23%20問題の説明%0A%3C%21--%20発見した問題について簡単に説明してください%20--%3E%0A%0A%23%23%20ページリンク%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs-mintlify%2Fblob%2Fmain%2Fja-jp/development/backend/sandbox%2FREADME.mdx%0A%0A%23%23%20提案される変更%0A%3C%21--%20特定の変更案がある場合は、ここで説明してください%20--%3E%0A%0A%3C%21--%20ドキュメントの品質向上にご協力いただきありがとうございます！%20--%3E"
    >
        エラーを見つけたり提案がありますか？お知らせください
    </Card>
</CardGroup>
